#ifndef __GAMESTATE_H__
#define __GAMESTATE_H__

#include <vector>

namespace sf
{
	class RenderWindow;
};

class CGameEngine;

class CGameState
{
public:
	
	CGameState() { }

	virtual void Init() = 0 ;
	virtual void CleanUp() = 0;

	virtual void Resume() = 0; 
	virtual void Pause() = 0;

	virtual void HandleEvents(CGameEngine* game) = 0;
	virtual void Draw(CGameEngine* game) = 0;
	virtual void Update(CGameEngine* game) = 0;

	void ChangeState(CGameEngine* game, CGameState* state);
};

#endif //__GAMESTATE_H__